Kick : SimpleSynthDescriptor{
	

	createGuiControls{	
		this.put(\lowDecay, c.new(default: 0.01, max: 1, min: 0.0001) );
		
		
		this.put(\lowPitch, 		c.new(default: 60, min:30, max: 200,  midiNum:17) );
		this.put(\lowFMFreq, 		c.new(default: 35, min:5, max: 200,  midiNum:17) );
		
		this.put(\clickLevel, c.new(default: 2 max: 4, min: 0) );
		
		
		this.put(\attack, 			c.new(default: 0.01, min: 0.01, max: 0.5,  midiNum:16) );
		this.put(\sustain, 		c.new(default: 0.2, min:0.001, max: 1,  midiNum:17) );
		this.put(\decay, 			c.new(default: 0.5,min: 0.001, max: 5,  midiNum:18));
		
		
		
	}
	
	*loadSynth{
	
		
		SynthDef(
					
			this.getSynthName,
			{
				arg 
				busNum,
				lowDecay = 0.01,
				lowPitch = 60,
				lowFMFreq = 35,
				clickLevel = 2
				;
				
				var sig=0, swell, swellFM, click;
				
				lowPitch = lowPitch * EnvGen.kr(Env.perc(0,lowDecay, 1, 0), levelBias: 2);
				
				sig = [SinOsc.ar((lowPitch * SinOsc.kr(lowFMFreq))),  SinOsc.ar((lowPitch * SinOsc.kr(lowFMFreq * 1.01)))] ;
				
				
				click = SinOsc.ar(EnvGen.kr(Env.perc(0, 0.01, 5000, 0)) + 3000);
				click = click * EnvGen.kr(Env.perc(0, 0.01, 1, 0));
				click = click * clickLevel;
				sig = sig + click;
				  
				Out.ar(busNum, 
					sig
				);
				
				
			}
			
		).load(Server.default);
	
	}

}

	
	